A system that performs analysis, such as a classification system, may exhibit behavior that a user deems unsatisfactory for one or more reasons. In response, the user may attempt to modify various aspects of the system to improve its performance. Commonly, a user performs this task in an iterative and ad hoc manner. For instance, the user may change the value of an individual parameter of the system, observe the resultant performance of the system, and then make another change to the same parameter or another parameter, etc.
The above approach to modifying the behavior of a system is not fully satisfactory. First, the behavior of the system may be difficult to understand, even for users who are considered experts in the field to which the system pertains. For instance, the behavior of the system may depend on the configuration of numerous parameters. Further, there may be complex dependencies among various parameters. Thus, the user may have difficulty in determining: a) what parameters are good candidates to change; and b) how these parameters can be changed to achieve a desired effect. Second, the ad hoc approach to modifying the behavior of the system may pose a combinatorial space of design decisions; thus, this approach may be tedious and prone to error, generally providing poor user experience and user controls. These drawbacks are merely representative; existing techniques for modifying the behavior of systems may suffer from yet other potential shortcomings.